package com.it.common.utils;

import android.app.Activity;
import android.content.Context;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.WindowManager;

/**
 * 单位转换工具类
 *
 * @author weishixiong
 * @Time 2018-03-22
 */
public class DisplayUtil {
    public static int px2dip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    public static int dip2px(Context context, float dipValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dipValue * scale + 0.5f);
    }

    public static int px2sp(Context context, float pxValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (pxValue / fontScale + 0.5f);
    }

    public static int sp2px(Context context, float spValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (spValue * fontScale + 0.5f);
    }

    /**
     * 获取屏幕宽
     *
     * @param context
     * @return
     */
    public static int getScreenWidth(Activity context) {
        WindowManager windowManager = context.getWindowManager();
        DisplayMetrics displayMetrics = new DisplayMetrics();

        // 获取整个屏幕的 DisplayMetrics 信息，包括底部虚拟按键的高度
//        windowManager.getDefaultDisplay().getMetrics(displayMetrics);

        // 获取真实的 DisplayMetrics 对象，其中包含底部虚拟按键的高度
        windowManager.getDefaultDisplay().getRealMetrics(displayMetrics);

        int widthPixels = displayMetrics.widthPixels;

        Log.d(TAG, "widthPixels :" + widthPixels);

        return widthPixels;

    }

    public static final String TAG = "DisplayUtil";

    /**
     * 获取屏幕高度
     *
     * @param context
     * @return
     */
    public static int getScreenHeight(Activity context) {
        WindowManager windowManager = context.getWindowManager();
        DisplayMetrics displayMetrics = new DisplayMetrics();

        // 获取整个屏幕的 DisplayMetrics 信息，包括底部虚拟按键的高度
//        windowManager.getDefaultDisplay().getMetrics(displayMetrics);

        // 获取真实的 DisplayMetrics 对象，其中包含底部虚拟按键的高度
        windowManager.getDefaultDisplay().getRealMetrics(displayMetrics);

        int heightPixels = displayMetrics.heightPixels;

        Log.d(TAG, "heightPixels :" + heightPixels);

        return heightPixels;

    }
}
